local skel = fk.CreateSkill{
  name = "tea__shixiang",
  tags = { Skill.Limited }
}
local U = require "packages/utility/utility"
Fk:loadTranslationTable{
  ["tea__shixiang"] = "饰相",
  [":tea__shixiang"] = "限定技，出牌阶段，你可以令一名已受伤的其他角色将体力回复至上限，然后本局游戏其体力值即将变化时，此变化值+1。",
  ["@@tea__shixiang"] = "饰相",
}
---@type ActiveSkillSpec
local shixiang = {
  target_num = 1,
  card_filter = Util.FalseFunc,
  target_filter = function (self, player, to_select, selected, selected_cards)
    return #selected == 0 and to_select:isWounded()
  end,
  can_use = function (self, player)
    return player:usedSkillTimes(skel.name, Player.HistoryGame) == 0
  end,
  on_use = function (self, room, effect)
    room:recover{
      who = effect.tos[1],
      num = math.max(effect.tos[1].maxHp - effect.tos[1].hp, 0),
    }
    room:setPlayerMark(effect.tos[1], "@@tea__shixiang", 1)
  end
}
---@type TrigSkelSpec<DamageTrigFunc>
local shixiang_damage = {
  can_refresh = function (self, event, target, player, data)
    return data.to:getMark("@@tea__shixiang") > 0 and player == target
  end,
  on_refresh = function (self, event, target, player, data)
    data:changeDamage(1)
  end,
}
---@type TrigSkelSpec<RecoverTrigFunc>
local shixiang_recover = {
  can_refresh = function (self, event, target, player, data)
    return target:getMark("@@tea__shixiang") > 0 and player == target
  end,
  on_refresh = function (self, event, target, player, data)
    data:changeRecover(1)
  end
}
---@type TrigSkelSpec<HpLostTrigFunc>
local shixiang_losthp = {
  can_refresh = shixiang_recover.can_refresh,
  on_refresh = function (self, event, target, player, data)
    data.num = data.num + 1
  end
}
skel:addEffect("active", shixiang)
skel:addEffect(fk.PreDamage, shixiang_damage)
skel:addEffect(fk.PreHpRecover, shixiang_recover)
skel:addEffect(fk.PreHpLost, shixiang_losthp)
return skel